1. Field of the Invention
This invention relates generally to providing a method to facilitate the set-up of a group of data processing systems, and more specifically to providing a method to quickly deploy a group of computers with a specific set of software and hardware parameters in a chaotic environment, remote environment, and any other environment where human operation and intervention is impossible, impractical, or undesirable.
2. Description of the Prior Art
Organizations have developed several in-house programs and procedures for deploying data processing systems (e.g., computer servers). These in-house programs and procedures have been less than comprehensive, and the complexity of deploying data processing systems has also been approximately proportional to the number of data processing systems involved. Such deployments are frequently extremely time-consuming and frustrating under the best of circumstances to human operators, and usually require extensive human operator knowledge and supervision.
Complex data processing system deployment (especially networks of dozens or hundreds of data processing systems) typically requires extensive intervention by highly specialized human operators. Such complex data processing system deployment may be especially difficult in times of serious business dislocations (e.g., during or after extensive layoffs, and so forth), since sufficiently knowledgeable human operators may no longer be unavailable, or no longer cooperative.
Complex data processing system deployment is also extremely demanding on human operators in chaotic environments (e.g., during or after earthquakes, fires, massive power failures, terrorist attacks, full-scale military battles and conflicts, and so forth), since sufficiently knowledgeable human operators may be unavailable, injured, or insufficiently calm and incapable of making correct decisions. Incorrect decisions in complex data processing system deployments can cause an extensive amount of very complicated and very subtle problems that require an enormous amount of debug and recovery time. However, debug and recovery time may be in very short supply when the crisis recovery requires an extremely quick recovery of operational capabilities.
Complex data processing system deployment in remote environments (e.g., monitoring sites near natural hazards, unmanned underwater vehicles, robotic repair equipment in radioactive and other hazardous areas of nuclear power plants and chemical plants, unmanned space vehicles, manned space vehicles with incapacitated crews, and so forth) may also require extremely quick and complex data processing system deployment during and after unforeseen events that greatly reduce or eliminate the command, communication, and control systems that originally allowed deployment participation by remote human operators. Deployment of data processing systems after such events can be impossible, or quite difficult and time consuming, if no fully automatic deployment capability exists. Furthermore, deployment of data processing systems may be necessary when the consequences of the unforeseen event require an extremely quick recovery of operational capabilities of the data processing systems.
Deployment of data processing systems includes selecting several software and hardware parameters. These parameters are listed in detail below, but include personalization information and options information, as well as other types of parameters (e.g., configuration parameters).
For example, one prior art deployment software product is the PowerQuest DeployCenter (available from PowerQuest, with corporate headquarters in Orem, Utah), which automates the capture and restoration of data (e.g., personal information) on end-user's systems, including network and operating system settings (e.g., this allows the user to elect the operating system settings to be transferred to other computers and affects the way that the operating system functions). The objects transferable during deployment include (but are not limited to): Desktop settings (e.g., for the Windows operating system this could include Active Desktop, Colors, Desktop Icons, Display, Icon Font, Pattern, Screen Saver, Wallpaper, Window Metrics and Start Menu); Personality settings (e.g., for the Windows operating system this could include Accessibility, Internet Browser Settings, Keyboard, Mouse, Printers, Send To Menu, Shell, Sound, Taskbar and User Profiles); Connectivity Settings (e.g., for the Windows operating system this could include Computer Description, Computer Name, DNS configuration, mapped drives, RAS networking connections, shared folders & drives, TCP/IP configuration, WINS configuration, Workgroup and Domain); Files (e.g., files that can be transferred at the same time as the settings).
However, the PowerQuest DeployCenter does not capture (i.e., take a snapshot of) the hardware configuration of a reference server, such as the hardware inventory, firmware settings, CMOS settings, boot order (e.g., booting from CD, disk drive, floppy diskette, or network), and the enablement/disablement of embedded hardware. The DeployCenter can only save information that is related to, or on, the actual disk drive being captured. Thus, it does not capture information about the hardware, the firmware settings, CMOS, boot order, or the enablement/disablement of any embedded hardware. It can manipulate the file system format, disk drive partitions, free space, and files.
Another prior art deployment software package is the Rembo Auto Deploy (RAD) package (available from Rembo Technology Sarl, with corporate headquarters in Carouge, Switzerland). This is a system image creation, management, and deployment tool intended to allow an administrator to take a snapshot of an operating system configuration for a computer, including: base disk image, application packages, configuration settings, and specific hardware configurations (such as firmware upgrades). RAD is driven from a central database containing unique parameters for each computer (including the rules that decide which images and software are applied to each computer). Parameters are set prior to deployment.
RAD assembles the target computer's operating system from various building blocks. The first is the base disk image. A base disk image is a copy of the hard disk contents (including the operating system) from a reference computer {e.g., in a Windows operating system this is prepared with the Microsoft System Preparation tool (SysPrep), available from Microsoft Corporation, with corporate headquarters in Redmond, Wash.}. On top of the base disk image, an administrator can apply software images. Software images are similar to base disk images, but are related to a specific piece of software. Multiple software images can be merged with the base disk image, and the combined base disk image and software images are written to a hard disk. At the end of the deployment, a SysPrep answer file (or a Linux equivalent file) is created and copied to the hard disk to customize the operating system.
However, the deployment process needs a specialized deployment center and may require manual intervention. In manual mode, RAD requires a user to enter specific computer configuration parameters and choose which software package to install. RAD uses a reference server to take a snapshot of some of the hardware inventory {including PCI devices, and desktop management interface (DMI) information}, disk drive settings, and CMOS settings.
However, RAD does not have features to control embedded hardware settings. RAD only images the first system disk drive or RAID volume as reported by the BIOS; alternate disk drives must be installed using operating system-based tools, or by using command lines. RAD only supports incremental images on the primary OS partition; the operator must use software updates packages with an unattended setup command line to install software on a secondary partition.
A major problem inhibiting deployment of a group of data processing systems is the complexity of setting up the software and parameters of a larger group of data processing systems. It would be desirable to provide a comprehensive method and system to intelligently deploy a group of data processing systems with a specific set of software, hardware firmware versions, and parameters without human intervention.